1. Technical Field
The present system and method relate generally to network data transmission, and more particularly to efficient block error correction for packet-based digital communications.
2. Description of the Background Art
Packet-based digital communications methods are frequently used when multiple intercommunicating transceivers share a common medium. Two examples of packet-based digital communications are communications transmitted according to Ethernet and Phoneline Networking Transceiver (referred to herein as “PNT”) standards. Details regarding the PNT standard are disclosed in “G.pnt: Basic Framing Considerations”, also known as ITU document FI-098 (referred to herein as “reference [1]”) as submitted to the International Telecommunications Union in consideration for standardization, the disclosure of which is incorporated herein by reference.
In conventional packet-based communications, each receiver device typically operates with a generic initial condition at the beginning of each received data packet. As the packet is received, ongoing adaptive equalization and adaptive timing recovery improve the receiver's performance over the course of the received packet. Thus, the latter portions of packets tend to have a lower probability of received errors than the beginning portions of the packets.
Error correction coding may be used to improve the reliability of data transmission between transceivers, and is particularly useful in a noisy transmission medium. Error correction encoding typically involves the addition of redundancy, such as parity-check or redundant symbols, to data being transmitted over the communication network. Adding more redundancy to a packet allows a greater number of errors to be corrected, with the disadvantage that the transmission time increases to account for the redundant bits.
One type of a block error correction code commonly used in the art is Reed-Solomon (RS) coding. Reed-Solomon coding is typically used in fixed redundancy processes having high latency. In Reed-Solomon coding, the data stream is usually broken down, or divided, into blocks of symbols, where a symbol is a collection of M bits. In computer based communications, M is often equal to eight so that, in this instance, a symbol is synonymous with a byte. Redundant symbols are generated and appended to the end of the block of data (message) symbols, forming a codeword. The total length of the codeword is N=2M−1 symbols. Generally, N=K+R, where K is the number of message symbols and R is the number of redundant symbols per codeword, so that the receiver is able to locate and correct R/2 symbols with errors.
As the ratio of R/K (number of redundant symbols/number of message symbols) increases, the error correction capability increases, with the disadvantage that more communications bandwidth is used for the redundant information as opposed to the message data. Reed-Solomon coding is therefore beneficial when the data rate increase that accompanies being able to correct errors outweighs the data rate lost to the redundant overhead.
In packet-based communications such as PNT, there is typically a higher probability of errors in the first few codewords of a packet as opposed to the latter few codewords of the packet due to the adaptation of the receiver to the transmission channel. Conventionally, K and R are substantially constant throughout the length of the packet; thus requiring a R/K ratio high enough to reliably correct the errors in the first few codewords. Unfortunately, such a high R/K value may be unnecessary for the succeeding codewords, which will likely have a lower error density. Communication bandwidth in these succeeding codewords is being lost to this unnecessary redundancy. Therefore, there is a need for a more efficient system and method for block error correction in packet-based digital communications.